package leetCode.offer46;



import java.util.ArrayList;
import java.util.List;

/**
 * 给定一个数字，我们按照如下规则把它翻译为字符串：0 翻译成 “a” ，1 翻译成 “b”，……，11 翻译成 “l”，……，25 翻译成 “z”。
 * 一个数字可能有多个翻译。请编程实现一个函数，用来计算一个数字有多少种不同的翻译方法
 */
public class Solution1 implements Solution{


    @Override
    public int translateNum(int num) {
        String str = ""+num;
        int firNum = 1;
        int seNum = 1;
        List<Integer> resultList = new ArrayList<>();
        for(int i=0;i<str.length()-1;i++) {
            char first = str.charAt(i);
            char second = str.charAt(i+1);
            if(first!='0'&&Integer.parseInt((String.valueOf(first)+ second))<26) {
                int temSe = seNum;
                seNum += firNum;
                firNum = temSe;
                if(i+1==str.length()-1){
                    resultList.add(seNum);
                }
            }else {
                resultList.add(seNum);
                firNum = 1;
                seNum = 1;
            }
        }
        int result = 1;
        for(int item:resultList){
            result*=item;
        }
        return result;
    }

    public static void main(String[] args) {
        System.out.println(new Solution1().translateNum(506));
    }

}
